/*
 ============================================================================
 文件名 	: EasyBounceGameView.h
 描述		: gameview.
 ============================================================================
 */

#ifndef EASYBOUNCEGAMEVIEW_H_
#define EASYBOUNCEGAMEVIEW_H_


// 引用
#include <aknview.h>

#include "Engine.h"
#include "ScoreCounter.h"
#include "GameAudioPlayer.h"

// 常量
// view的UID
const TUid KGameViewId = {2};

class CEasyBounceGameContainer;

// 类声明
class CEasyBounceGameView : public CAknView
	{
public:
	// 新增函数
	CEngine* Engine();
	
	
	// 构造函数
	void ConstructL();

	/**
	 * CEasyBounceGameView.
	 * C++默认构造函数.
	 */
	CEasyBounceGameView();
	

	/**
	 * ~CEasyBounceGameView
	 * 虚析构函数
	 */
	~CEasyBounceGameView();

public:
	// 基类函数
    
    /**
    * 返回view的Uid
    */
    TUid Id() const;

    /**
    * “选项”菜单命令处理
    */
    void HandleCommandL(TInt aCommand);

    /**
    * 处理界面大小变化事件
    */
    void HandleViewRectChange();

private:

    /**
    * 继承自AknView
    * 用于激活视图
    */
    void DoActivateL(const TVwsViewId& aPrevViewId,TUid aCustomMessageId,
        const TDesC8& aCustomMessage);

    /**
    * 继承自AknView
    * 用于反激活视图
    */
    void DoDeactivate();

private:
	
	CEasyBounceGameContainer* iContainer;
	CEngine* iEngine; //拥有游戏引擎的指针
	CScoreCounter* iScoreCounter; //拥有分数计算器的指针
	CGameAudioPlayer* iAudioPlayer; //拥有音频播放器指针
	};


#endif /* EASYBOUNCEGAMEVIEW_H_ */
